package com.telit.firecommand.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;


/**
 * @author zhouyu
 * @description 待推送消息dto
 */
@Data
@ApiModel(value="待推送消息dto")
@NoArgsConstructor
@AllArgsConstructor
public class SendMessageDTO implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 发送对象标识（不区分大小写）
     * all： 发送给所有安卓，web端,无人机端
     * allWithoutUserId: 发送给所有除了excludeUserId之外的web端,安卓端,无人机端
     * web： 发送给所有web端
     * webWithoutUserId: 发送给所有除了excludeUserId之外的web端
     * phone：发送给所有安卓端
     * special：发送给特定用户
     */
    @NotBlank(message = "发送对象标识不能为空")
    @ApiModelProperty(value="发送对象标识（不区分大小写）,可传入参数:all,allWithoutUserId,web,webWithoutUserId,phone,special")
    private String flag;
    /**
     * 待发送人集合（flag为special时才生效）
     */
    @ApiModelProperty(value="待发送人集合（flag为special时才生效）")
    private String[] userId;
    /**
     * 不发送人集合（flag为webWithoutUserId，special时才生效）
     */
    @ApiModelProperty(value="不发送人集合（flag为webWithoutUserId，special时才生效）")
    private String[] excludeUserId;
    /**
     * 推送消息内容
     */
    @NotBlank(message = "推送消息内容不能为空")
    @ApiModelProperty(value="推送消息内容")
    private String msg;

    public SendMessageDTO(String flag, String msg){
        this.flag = flag;
        this.msg = msg;
    }

    public SendMessageDTO(String flag, String[] userId, String msg){
        this.flag = flag;
        this.userId = userId;
        this.msg = msg;
    }
}
